home *** CD-ROM | disk | FTP | other *** search
/ Spanish Scene 1 / SpanishScene1.iso / spanish pack n°1 by llfb / --llfb-- / programas / sources1.dms / sources1.adf / SOURCES / Campos_de_estrellas / 3DStars.ASM < prev    next >
Assembly Source File  |  1996-06-04  |  16KB  |  614 lines

  1. ; Path: pdxgate!reed!batcomputer!rpi!zaphod.mps.ohio-state.edu!cs.utexas.edu!uunet!mcsun!sunic!ugle.unit.no!aun.uninett.no!nuug!ifi.uio.no!larshaug
  2. ; From: larshaug@ifi.uio.no (Lars Haugseth)
  3. ; Newsgroups: alt.sys.amiga.demos
  4. ; Subject: Re: Writing a StarField. Which method is best?
  5. ; Message-ID: <1992Nov11.131803.1276@ifi.uio.no>
  6. ; Date: 11 Nov 92 13:18:03 GMT
  7. ; References: <1992Nov7.104910.60476@cc.usu.edu>
  8. ; Sender: larshaug@ifi.uio.no (Lars Haugseth)
  9. ; Organization: Dept. of Informatics, University of Oslo, Norway
  10. ; Lines: 600
  11. ; Nntp-Posting-Host: skalk.ifi.uio.no
  12. ; Originator: larshaug@skalk.ifi.uio.no
  13. ;
  14. ; Here is a small 3D-stars routine, with sine-table and all...
  15. ; I have programmed it in AsmOne, but it should work on most
  16. ; assemblers without much work.
  17. ;
  18. ; No flames about coding-technique, please. After all, this is
  19. ; alt.sys.amiga.DEMOS ;-)
  20. ;
  21. ; You can have almost twice as many stars pr.frame if
  22. ; you make some heavy tables to avoid the mulus in the
  23. ; star-plotting loop. This you'll have to do youself :)
  24. ;
  25. ; If you can manage more than 810 stars each frame on a plain
  26. ; 68000 Amiga500, send me a mail, ok? :)
  27. ;
  28. ; larshaug@ifi.uio.no (Perplex/PMC)
  29. ;
  30. ;---------------------------------------
  31. ; 3D STARFIELD
  32. ;---------------------------------------
  33.  
  34. NSTARS    = 435        ; Number of stars
  35.  
  36. ;---------------------------------------
  37.  
  38.     SECTION code,code_p
  39.  
  40. START    move.l    4.w,a6
  41.     move.l    156(a6),a1
  42.     move.l    38(a1),OLDCP
  43.     bsr    SBUFFER
  44.     bsr    VBLANK
  45.     move.l    #COPPER,$DFF080
  46.     clr.w    $DFF088
  47.     move.w    $DFF01C,OLDIQ
  48.     move.w    $DFF002,OLDCR
  49.     or.w    #$8000,OLDIQ
  50.     or.w    #$8000,OLDCR
  51.     move.w    #$7FFF,$DFF09A
  52.     move.w    #$7FFF,$DFF096
  53.     move.w    #$87C0,$DFF096
  54.     move.w    #$0000,$DFF180
  55.  
  56. ;---------------------------------------
  57.  
  58. ICOORDS    lea    SCOORDS,a0        ; Randomize coordinates
  59.     move.w    #NSTARS-1,d7
  60. ICOO1    bsr    GETRND
  61.     and.w    #$1FFF,d0
  62.     move.w    d0,(a0)+
  63.     bsr    GETRND
  64.     and.w    #$1FFF,d0
  65.     move.w    d0,(a0)+
  66.     bsr    GETRND
  67.     and.w    #$1FFF,d0
  68.     move.w    d0,(a0)+
  69.     dbf    d7,ICOO1
  70.  
  71. ;---------------------------------------
  72.  
  73. IPERSP    lea    PERSTAB,a0        ; Construct perspective table
  74.     moveq    #0,d1
  75.     move.l    #$95FFFF,d0
  76. IPER1    move.l    d0,d2
  77.     move.l    d1,d3
  78.     add.w    #300,d3
  79.     divu    d3,d2
  80.     move.w    d2,(a0)+
  81.     addq.l    #1,d1
  82.     cmp.l    #$2000,d1
  83.     bne.s    IPER1
  84.  
  85. ;---------------------------------------
  86.  
  87. IPLOT    lea    PLTXTAB,a0        ; Construct plot tables
  88.     lea    PLTBTAB,a1
  89.     lea    PLTYTAB,a2
  90.     moveq    #0,d0
  91. IPLO1    move.w    d0,d1
  92.     lsr.w    #3,d1
  93.     move.w    d1,(a0)+
  94.     move.w    d0,d1
  95.     eor.w    #$FFFF,d1
  96.     and.w    #7,d1
  97.     move.w    d1,(a1)+
  98.     cmp.w    #272,d0
  99.     bge.s    IPLO2
  100.     move.w    d0,d1
  101.     mulu    #88,d1
  102.     move.w    d1,(a2)+
  103. IPLO2    addq.w    #1,d0
  104.     cmp.w    #352,d0
  105.     bne.s    IPLO1
  106.  
  107. ;---------------------------------------
  108.  
  109. MAIN    bsr.s    VBLANK            ; Main loop
  110.  
  111.     move.w    #$000,$DFF180
  112.  
  113.     btst    #2,$DFF016        ; Freeze?
  114.     beq.s    MAIN
  115.  
  116.     bsr    SANIM
  117.     bsr    SBUFFER
  118.     bsr    SCLEAR
  119.     bsr    SDRAW
  120.  
  121.     move.w    #$005,$DFF180
  122.  
  123.     btst    #6,$BFE001        ; Exit?
  124.     bne.s    MAIN
  125.  
  126. ;---------------------------------------
  127.  
  128. EXIT    move.w    OLDIQ,$DFF09A
  129.     move.l    OLDCP,$DFF080
  130.     move.w    OLDCR,$DFF096
  131.     clr.w    $DFF088
  132.     rts
  133.  
  134. ;---------------------------------------
  135.  
  136. VBLANK    cmp.b    #0,$DFF006
  137.     bne.s    VBLANK
  138.     btst    #0,$DFF005
  139.     beq.s    VBLANK
  140.     rts
  141.  
  142. WAITB    nop
  143.     btst    #6,$DFF002
  144.     bne.s    WAITB
  145.     rts
  146.  
  147. ;---------------------------------------
  148.  
  149. GETRND    bsr.s    GRN1            ; Get random word
  150.     and.w    #$FF,d5
  151.     move.w    d5,d0
  152.     lsl.w    #8,d0
  153.     bsr.s    GRN1
  154.     and.w    #$FF,d5
  155.     or.w    d5,d0
  156.     rts
  157.  
  158. GRN1    move.b    $DFF007,d5        ; Get random byte
  159.     move.b    $BFD800,d6
  160.     eor.b    d6,d5
  161.     moveq    #0,d6
  162.     move.b    d5,d6
  163.     ror.b    #1,d6
  164. GRN2    dbf    d6,GRN2
  165.     rts
  166.  
  167. ;---------------------------------------
  168.  
  169. SDRAW    lea    SCOORDS,a0        ; Draw starfield
  170.     lea    PERSTAB,a1
  171.     lea    PLTXTAB,a2
  172.     lea    PLTBTAB,a3
  173.     lea    PLTYTAB,a4
  174.     move.l    SFPTR+4,a6
  175.  
  176.     move.l    a7,SAVEA7
  177.     lea    $1000.w,a7
  178.  
  179.     movem.w    SXADD,d3-d4/a5
  180.     add.w    #$1000,d3
  181.     add.w    #$1000,d4
  182.     move.w    #$1FFF,d5
  183.  
  184.     move.w    #NSTARS-1,d7
  185.  
  186. SDRW1    movem.w    (a0)+,d0-d2        ; Get coordinates
  187.     add.w    d3,d0            ; X-movement
  188.     and.w    d5,d0
  189.     sub.w    a7,d0
  190.     add.w    d4,d1            ; Y-movement
  191.     and.w    d5,d1
  192.     sub.w    a7,d1
  193.     add.w    a5,d2            ; Z-movement
  194.     and.w    d5,d2
  195.  
  196.     add.w    d2,d2
  197.     move.w    (a1,d2.w),d6
  198.     muls    d6,d0            ; X-projection
  199.     swap    d0
  200.     add.w    #176,d0
  201.     cmp.w    #351,d0
  202.     bhi.s    SDRW3
  203.     muls    d6,d1            ; Y-projection
  204.     swap    d1
  205.     add.w    #136,d1
  206.     cmp.w    #271,d1
  207.     bhi.s    SDRW3
  208.  
  209.     add.w    d0,d0
  210.     add.w    d1,d1
  211.     move.w    (a4,d1.w),d6
  212.     add.w    (a2,d0.w),d6
  213.     move.w    (a3,d0.w),d0
  214.  
  215.     cmp.w    #$2400,d2
  216.     bgt.s    SDRW2
  217.  
  218.     bset    d0,(a6,d6.w)
  219.     dbf    d7,SDRW1
  220.     bra.s    SPLOTX
  221.  
  222. SDRW2:    bset    d0,$2C(a6,d6.w)
  223. SDRW3:    dbf    d7,SDRW1
  224.  
  225. SPLOTX:    move.l    SAVEA7,a7
  226.     rts
  227.  
  228. ;---------------------------------------
  229.  
  230. SCLEAR    bsr    WAITB            ; Clear starfield
  231.     move.l    SFPTR+8,$DFF054
  232.     move.w    #0,$DFF066
  233.     move.l    #$01000000,$DFF040
  234.     move.w    #64*272+44,$DFF058
  235.     rts
  236.  
  237. ;---------------------------------------
  238.  
  239. SBUFFER    lea    SFPTR,a0        ; Triple buffering
  240.     movem.l    (a0),d0-d2
  241.     exg    d0,d1
  242.     exg    d1,d2
  243.     movem.l    d0-d2,(a0)
  244.     move.l    SFPTR,d0
  245.     move.l    SFPTR,d1
  246.     add.l    #$002C,d1
  247.     move.w    d0,C1PL1+6
  248.     swap    d0
  249.     move.w    d0,C1PL1+2
  250.     move.w    d1,C1PL2+6
  251.     swap    d1
  252.     move.w    d1,C1PL2+2
  253.     rts
  254.  
  255. ;---------------------------------------
  256.  
  257. SANIM    lea    SSINUS,a0        ; Animate star-movement
  258.     move.w    SXPOS,d0
  259.     move.w    SYPOS,d1
  260.     move.w    SZPOS,d2
  261.     add.w    SXSPD,d0
  262.     add.w    SYSPD,d1
  263.     add.w    SZSPD,d2
  264.     and.w    #$7FE,d0
  265.     and.w    #$7FE,d1
  266.     and.w    #$7FE,d2
  267.     move.w    d0,SXPOS
  268.     move.w    d1,SYPOS
  269.     move.w    d2,SZPOS
  270.     move.w    SXADD,d3
  271.     move.w    SYADD,d4
  272.     move.w    SZADD,d5
  273.     add.w    (a0,d0.w),d3
  274.     add.w    (a0,d1.w),d4
  275.     add.w    (a0,d2.w),d5
  276.     move.w    d3,SXADD
  277.     move.w    d4,SYADD
  278.     move.w    d5,SZADD
  279.  
  280.     rts
  281.  
  282. ;---------------------------------------
  283.  
  284.     SECTION copper,data_c
  285.  
  286. COPPER    dc.w    $0092,$0030
  287.     dc.w    $0094,$00D8
  288.     dc.w    $008E,$2C71
  289.     dc.w    $0090,$2CD1
  290.     dc.w    $0102,$0000
  291.     dc.w    $0108,$002C
  292.     dc.w    $010A,$002C
  293.  
  294.     dc.w    $2307,$FFFE
  295.     dc.w    $0182,$0DDD
  296.     dc.w    $0184,$0888
  297.     dc.w    $0186,$0DDD
  298.  
  299.     dc.w    $2407,$FFFE
  300.     dc.w    $0100,$2200
  301. C1PL1    dc.w    $00E0,$0000
  302.     dc.w    $00E2,$0000
  303. C1PL2    dc.w    $00E4,$0000
  304.     dc.w    $00E6,$0000
  305.  
  306.     dc.w    $FFDF,$FFFE
  307.     dc.w    $3407,$FFFE
  308.     dc.w    $0100,$0000
  309.  
  310.     dc.w    $FFFF,$FFFE
  311.  
  312. ;---------------------------------------
  313.  
  314.     SECTION data,data_p
  315.  
  316. OLDSP    dc.l    0            ; Temporaries
  317. OLDCP    dc.l    0
  318. OLDCR    dc.w    0
  319. OLDIQ    dc.w    0
  320.  
  321. SAVEA7    dc.l    0
  322.  
  323. SXADD    dc.w    33            ; Star movement
  324. SYADD    dc.w    12
  325. SZADD    dc.w    -114
  326.  
  327. SXPOS    dc.w    0            ; Sinus positions
  328. SYPOS    dc.w    $136
  329. SZPOS    dc.w    $500
  330.  
  331. SXSPD    dc.w    -4            ; Sinus speeds
  332. SYSPD    dc.w    6
  333. SZSPD    dc.w    2
  334.  
  335. SFPTR    dc.l    SPLANE1            ; Starfield pointers
  336.     dc.l    SPLANE2
  337.     dc.l    SPLANE3
  338.  
  339. SCOORDS    blk.w    3*NSTARS        ; Star coordinates
  340.  
  341. PERSTAB    blk.w    $2000,0            ; Perspective table
  342.  
  343. PLTXTAB    blk.w    352,0            ; Plot tables
  344. PLTBTAB    blk.w    352,0
  345. PLTYTAB    blk.w    272,0
  346.  
  347. ;---------------------------------------
  348.  
  349. SSINUS    DC.B    $00,$00,$00,$00,$00,$00,$00,$01
  350.     DC.B    $00,$01,$00,$02,$00,$02,$00,$03
  351.     DC.B    $00,$03,$00,$03,$00,$04,$00,$04
  352.     DC.B    $00,$05,$00,$05,$00,$06,$00,$06
  353.     DC.B    $00,$06,$00,$07,$00,$07,$00,$08
  354.     DC.B    $00,$08,$00,$09,$00,$09,$00,$09
  355.     DC.B    $00,$0A,$00,$0A,$00,$0B,$00,$0B
  356.     DC.B    $00,$0B,$00,$0C,$00,$0C,$00,$0D
  357.     DC.B    $00,$0D,$00,$0E,$00,$0E,$00,$0E
  358.     DC.B    $00,$0F,$00,$0F,$00,$10,$00,$10
  359.     DC.B    $00,$11,$00,$11,$00,$11,$00,$12
  360.     DC.B    $00,$12,$00,$13,$00,$13,$00,$13
  361.     DC.B    $00,$14,$00,$14,$00,$15,$00,$15
  362.     DC.B    $00,$15,$00,$16,$00,$16,$00,$17
  363.     DC.B    $00,$17,$00,$18,$00,$18,$00,$18
  364.     DC.B    $00,$19,$00,$19,$00,$1A,$00,$1A
  365.     DC.B    $00,$1A,$00,$1B,$00,$1B,$00,$1B
  366.     DC.B    $00,$1C,$00,$1C,$00,$1D,$00,$1D
  367.     DC.B    $00,$1D,$00,$1E,$00,$1E,$00,$1F
  368.     DC.B    $00,$1F,$00,$1F,$00,$20,$00,$20
  369.     DC.B    $00,$21,$00,$21,$00,$21,$00,$22
  370.     DC.B    $00,$22,$00,$22,$00,$23,$00,$23
  371.     DC.B    $00,$24,$00,$24,$00,$24,$00,$25
  372.     DC.B    $00,$25,$00,$25,$00,$26,$00,$26
  373.     DC.B    $00,$26,$00,$27,$00,$27,$00,$27
  374.     DC.B    $00,$28,$00,$28,$00,$29,$00,$29
  375.     DC.B    $00,$29,$00,$2A,$00,$2A,$00,$2A
  376.     DC.B    $00,$2B,$00,$2B,$00,$2B,$00,$2C
  377.     DC.B    $00,$2C,$00,$2C,$00,$2D,$00,$2D
  378.     DC.B    $00,$2D,$00,$2E,$00,$2E,$00,$2E
  379.     DC.B    $00,$2F,$00,$2F,$00,$2F,$00,$2F
  380.     DC.B    $00,$30,$00,$30,$00,$30,$00,$31
  381.     DC.B    $00,$31,$00,$31,$00,$32,$00,$32
  382.     DC.B    $00,$32,$00,$33,$00,$33,$00,$33
  383.     DC.B    $00,$33,$00,$34,$00,$34,$00,$34
  384.     DC.B    $00,$35,$00,$35,$00,$35,$00,$35
  385.     DC.B    $00,$36,$00,$36,$00,$36,$00,$36
  386.     DC.B    $00,$37,$00,$37,$00,$37,$00,$38
  387.     DC.B    $00,$38,$00,$38,$00,$38,$00,$39
  388.     DC.B    $00,$39,$00,$39,$00,$39,$00,$3A
  389.     DC.B    $00,$3A,$00,$3A,$00,$3A,$00,$3A
  390.     DC.B    $00,$3B,$00,$3B,$00,$3B,$00,$3B
  391.     DC.B    $00,$3C,$00,$3C,$00,$3C,$00,$3C
  392.     DC.B    $00,$3C,$00,$3D,$00,$3D,$00,$3D
  393.     DC.B    $00,$3D,$00,$3D,$00,$3E,$00,$3E
  394.     DC.B    $00,$3E,$00,$3E,$00,$3E,$00,$3F
  395.     DC.B    $00,$3F,$00,$3F,$00,$3F,$00,$3F
  396.     DC.B    $00,$40,$00,$40,$00,$40,$00,$40
  397.     DC.B    $00,$40,$00,$40,$00,$41,$00,$41
  398.     DC.B    $00,$41,$00,$41,$00,$41,$00,$41
  399.     DC.B    $00,$41,$00,$42,$00,$42,$00,$42
  400.     DC.B    $00,$42,$00,$42,$00,$42,$00,$42
  401.     DC.B    $00,$43,$00,$43,$00,$43,$00,$43
  402.     DC.B    $00,$43,$00,$43,$00,$43,$00,$43
  403.     DC.B    $00,$43,$00,$44,$00,$44,$00,$44
  404.     DC.B    $00,$44,$00,$44,$00,$44,$00,$44
  405.     DC.B    $00,$44,$00,$44,$00,$44,$00,$44
  406.     DC.B    $00,$44,$00,$45,$00,$45,$00,$45
  407.     DC.B    $00,$45,$00,$45,$00,$45,$00,$45
  408.     DC.B    $00,$45,$00,$45,$00,$45,$00,$45
  409.     DC.B    $00,$45,$00,$45,$00,$45,$00,$45
  410.     DC.B    $00,$45,$00,$45,$00,$45,$00,$45
  411.     DC.B    $00,$45,$00,$45,$00,$45,$00,$45
  412.     DC.B    $00,$45,$00,$45,$00,$45,$00,$45
  413.     DC.B    $00,$45,$00,$45,$00,$45,$00,$45
  414.     DC.B    $00,$45,$00,$45,$00,$45,$00,$45
  415.     DC.B    $00,$45,$00,$45,$00,$45,$00,$45
  416.     DC.B    $00,$45,$00,$45,$00,$45,$00,$45
  417.     DC.B    $00,$45,$00,$45,$00,$45,$00,$45
  418.     DC.B    $00,$45,$00,$45,$00,$45,$00,$45
  419.     DC.B    $00,$45,$00,$45,$00,$45,$00,$45
  420.     DC.B    $00,$44,$00,$44,$00,$44,$00,$44
  421.     DC.B    $00,$44,$00,$44,$00,$44,$00,$44
  422.     DC.B    $00,$44,$00,$44,$00,$44,$00,$43
  423.     DC.B    $00,$43,$00,$43,$00,$43,$00,$43
  424.     DC.B    $00,$43,$00,$43,$00,$43,$00,$43
  425.     DC.B    $00,$42,$00,$42,$00,$42,$00,$42
  426.     DC.B    $00,$42,$00,$42,$00,$42,$00,$42
  427.     DC.B    $00,$41,$00,$41,$00,$41,$00,$41
  428.     DC.B    $00,$41,$00,$41,$00,$40,$00,$40
  429.     DC.B    $00,$40,$00,$40,$00,$40,$00,$40
  430.     DC.B    $00,$3F,$00,$3F,$00,$3F,$00,$3F
  431.     DC.B    $00,$3F,$00,$3F,$00,$3E,$00,$3E
  432.     DC.B    $00,$3E,$00,$3E,$00,$3E,$00,$3D
  433.     DC.B    $00,$3D,$00,$3D,$00,$3D,$00,$3D
  434.     DC.B    $00,$3C,$00,$3C,$00,$3C,$00,$3C
  435.     DC.B    $00,$3B,$00,$3B,$00,$3B,$00,$3B
  436.     DC.B    $00,$3B,$00,$3A,$00,$3A,$00,$3A
  437.     DC.B    $00,$3A,$00,$39,$00,$39,$00,$39
  438.     DC.B    $00,$39,$00,$38,$00,$38,$00,$38
  439.     DC.B    $00,$38,$00,$37,$00,$37,$00,$37
  440.     DC.B    $00,$37,$00,$36,$00,$36,$00,$36
  441.     DC.B    $00,$36,$00,$35,$00,$35,$00,$35
  442.     DC.B    $00,$34,$00,$34,$00,$34,$00,$34
  443.     DC.B    $00,$33,$00,$33,$00,$33,$00,$32
  444.     DC.B    $00,$32,$00,$32,$00,$31,$00,$31
  445.     DC.B    $00,$31,$00,$31,$00,$30,$00,$30
  446.     DC.B    $00,$30,$00,$2F,$00,$2F,$00,$2F
  447.     DC.B    $00,$2E,$00,$2E,$00,$2E,$00,$2D
  448.     DC.B    $00,$2D,$00,$2D,$00,$2C,$00,$2C
  449.     DC.B    $00,$2C,$00,$2B,$00,$2B,$00,$2B
  450.     DC.B    $00,$2A,$00,$2A,$00,$2A,$00,$29
  451.     DC.B    $00,$29,$00,$29,$00,$28,$00,$28
  452.     DC.B    $00,$28,$00,$27,$00,$27,$00,$27
  453.     DC.B    $00,$26,$00,$26,$00,$26,$00,$25
  454.     DC.B    $00,$25,$00,$24,$00,$24,$00,$24
  455.     DC.B    $00,$23,$00,$23,$00,$23,$00,$22
  456.     DC.B    $00,$22,$00,$21,$00,$21,$00,$21
  457.     DC.B    $00,$20,$00,$20,$00,$20,$00,$1F
  458.     DC.B    $00,$1F,$00,$1E,$00,$1E,$00,$1E
  459.     DC.B    $00,$1D,$00,$1D,$00,$1C,$00,$1C
  460.     DC.B    $00,$1C,$00,$1B,$00,$1B,$00,$1B
  461.     DC.B    $00,$1A,$00,$1A,$00,$19,$00,$19
  462.     DC.B    $00,$19,$00,$18,$00,$18,$00,$17
  463.     DC.B    $00,$17,$00,$16,$00,$16,$00,$16
  464.     DC.B    $00,$15,$00,$15,$00,$14,$00,$14
  465.     DC.B    $00,$14,$00,$13,$00,$13,$00,$12
  466.     DC.B    $00,$12,$00,$12,$00,$11,$00,$11
  467.     DC.B    $00,$10,$00,$10,$00,$0F,$00,$0F
  468.     DC.B    $00,$0F,$00,$0E,$00,$0E,$00,$0D
  469.     DC.B    $00,$0D,$00,$0D,$00,$0C,$00,$0C
  470.     DC.B    $00,$0B,$00,$0B,$00,$0A,$00,$0A
  471.     DC.B    $00,$0A,$00,$09,$00,$09,$00,$08
  472.     DC.B    $00,$08,$00,$07,$00,$07,$00,$07
  473.     DC.B    $00,$06,$00,$06,$00,$05,$00,$05
  474.     DC.B    $00,$04,$00,$04,$00,$04,$00,$03
  475.     DC.B    $00,$03,$00,$02,$00,$02,$00,$01
  476.     DC.B    $00,$01,$00,$01,$00,$00,$00,$00
  477.     DC.B    $00,$00,$00,$00,$FF,$FF,$FF,$FF
  478.     DC.B    $FF,$FF,$FF,$FE,$FF,$FE,$FF,$FD
  479.     DC.B    $FF,$FD,$FF,$FC,$FF,$FC,$FF,$FC
  480.     DC.B    $FF,$FB,$FF,$FB,$FF,$FA,$FF,$FA
  481.     DC.B    $FF,$F9,$FF,$F9,$FF,$F9,$FF,$F8
  482.     DC.B    $FF,$F8,$FF,$F7,$FF,$F7,$FF,$F6
  483.     DC.B    $FF,$F6,$FF,$F6,$FF,$F5,$FF,$F5
  484.     DC.B    $FF,$F4,$FF,$F4,$FF,$F3,$FF,$F3
  485.     DC.B    $FF,$F3,$FF,$F2,$FF,$F2,$FF,$F1
  486.     DC.B    $FF,$F1,$FF,$F1,$FF,$F0,$FF,$F0
  487.     DC.B    $FF,$EF,$FF,$EF,$FF,$EE,$FF,$EE
  488.     DC.B    $FF,$EE,$FF,$ED,$FF,$ED,$FF,$EC
  489.     DC.B    $FF,$EC,$FF,$EC,$FF,$EB,$FF,$EB
  490.     DC.B    $FF,$EA,$FF,$EA,$FF,$EA,$FF,$E9
  491.     DC.B    $FF,$E9,$FF,$E8,$FF,$E8,$FF,$E7
  492.     DC.B    $FF,$E7,$FF,$E7,$FF,$E6,$FF,$E6
  493.     DC.B    $FF,$E5,$FF,$E5,$FF,$E5,$FF,$E4
  494.     DC.B    $FF,$E4,$FF,$E4,$FF,$E3,$FF,$E3
  495.     DC.B    $FF,$E2,$FF,$E2,$FF,$E2,$FF,$E1
  496.     DC.B    $FF,$E1,$FF,$E0,$FF,$E0,$FF,$E0
  497.     DC.B    $FF,$DF,$FF,$DF,$FF,$DF,$FF,$DE
  498.     DC.B    $FF,$DE,$FF,$DD,$FF,$DD,$FF,$DD
  499.     DC.B    $FF,$DC,$FF,$DC,$FF,$DC,$FF,$DB
  500.     DC.B    $FF,$DB,$FF,$DA,$FF,$DA,$FF,$DA
  501.     DC.B    $FF,$D9,$FF,$D9,$FF,$D9,$FF,$D8
  502.     DC.B    $FF,$D8,$FF,$D8,$FF,$D7,$FF,$D7
  503.     DC.B    $FF,$D7,$FF,$D6,$FF,$D6,$FF,$D6
  504.     DC.B    $FF,$D5,$FF,$D5,$FF,$D5,$FF,$D4
  505.     DC.B    $FF,$D4,$FF,$D4,$FF,$D3,$FF,$D3
  506.     DC.B    $FF,$D3,$FF,$D2,$FF,$D2,$FF,$D2
  507.     DC.B    $FF,$D1,$FF,$D1,$FF,$D1,$FF,$D0
  508.     DC.B    $FF,$D0,$FF,$D0,$FF,$CF,$FF,$CF
  509.     DC.B    $FF,$CF,$FF,$CF,$FF,$CE,$FF,$CE
  510.     DC.B    $FF,$CE,$FF,$CD,$FF,$CD,$FF,$CD
  511.     DC.B    $FF,$CC,$FF,$CC,$FF,$CC,$FF,$CC
  512.     DC.B    $FF,$CB,$FF,$CB,$FF,$CB,$FF,$CA
  513.     DC.B    $FF,$CA,$FF,$CA,$FF,$CA,$FF,$C9
  514.     DC.B    $FF,$C9,$FF,$C9,$FF,$C9,$FF,$C8
  515.     DC.B    $FF,$C8,$FF,$C8,$FF,$C8,$FF,$C7
  516.     DC.B    $FF,$C7,$FF,$C7,$FF,$C7,$FF,$C6
  517.     DC.B    $FF,$C6,$FF,$C6,$FF,$C6,$FF,$C5
  518.     DC.B    $FF,$C5,$FF,$C5,$FF,$C5,$FF,$C5
  519.     DC.B    $FF,$C4,$FF,$C4,$FF,$C4,$FF,$C4
  520.     DC.B    $FF,$C3,$FF,$C3,$FF,$C3,$FF,$C3
  521.     DC.B    $FF,$C3,$FF,$C2,$FF,$C2,$FF,$C2
  522.     DC.B    $FF,$C2,$FF,$C2,$FF,$C1,$FF,$C1
  523.     DC.B    $FF,$C1,$FF,$C1,$FF,$C1,$FF,$C1
  524.     DC.B    $FF,$C0,$FF,$C0,$FF,$C0,$FF,$C0
  525.     DC.B    $FF,$C0,$FF,$C0,$FF,$BF,$FF,$BF
  526.     DC.B    $FF,$BF,$FF,$BF,$FF,$BF,$FF,$BF
  527.     DC.B    $FF,$BE,$FF,$BE,$FF,$BE,$FF,$BE
  528.     DC.B    $FF,$BE,$FF,$BE,$FF,$BE,$FF,$BE
  529.     DC.B    $FF,$BD,$FF,$BD,$FF,$BD,$FF,$BD
  530.     DC.B    $FF,$BD,$FF,$BD,$FF,$BD,$FF,$BD
  531.     DC.B    $FF,$BD,$FF,$BC,$FF,$BC,$FF,$BC
  532.     DC.B    $FF,$BC,$FF,$BC,$FF,$BC,$FF,$BC
  533.     DC.B    $FF,$BC,$FF,$BC,$FF,$BC,$FF,$BC
  534.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BB
  535.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BB
  536.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BB
  537.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BB
  538.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BB
  539.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BB
  540.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BB
  541.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BB
  542.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BB
  543.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BB
  544.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BB
  545.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BB
  546.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BB
  547.     DC.B    $FF,$BB,$FF,$BB,$FF,$BB,$FF,$BC
  548.     DC.B    $FF,$BC,$FF,$BC,$FF,$BC,$FF,$BC
  549.     DC.B    $FF,$BC,$FF,$BC,$FF,$BC,$FF,$BC
  550.     DC.B    $FF,$BC,$FF,$BC,$FF,$BC,$FF,$BD
  551.     DC.B    $FF,$BD,$FF,$BD,$FF,$BD,$FF,$BD
  552.     DC.B    $FF,$BD,$FF,$BD,$FF,$BD,$FF,$BD
  553.     DC.B    $FF,$BE,$FF,$BE,$FF,$BE,$FF,$BE
  554.     DC.B    $FF,$BE,$FF,$BE,$FF,$BE,$FF,$BF
  555.     DC.B    $FF,$BF,$FF,$BF,$FF,$BF,$FF,$BF
  556.     DC.B    $FF,$BF,$FF,$BF,$FF,$C0,$FF,$C0
  557.     DC.B    $FF,$C0,$FF,$C0,$FF,$C0,$FF,$C0
  558.     DC.B    $FF,$C1,$FF,$C1,$FF,$C1,$FF,$C1
  559.     DC.B    $FF,$C1,$FF,$C2,$FF,$C2,$FF,$C2
  560.     DC.B    $FF,$C2,$FF,$C2,$FF,$C3,$FF,$C3
  561.     DC.B    $FF,$C3,$FF,$C3,$FF,$C3,$FF,$C4
  562.     DC.B    $FF,$C4,$FF,$C4,$FF,$C4,$FF,$C4
  563.     DC.B    $FF,$C5,$FF,$C5,$FF,$C5,$FF,$C5
  564.     DC.B    $FF,$C6,$FF,$C6,$FF,$C6,$FF,$C6
  565.     DC.B    $FF,$C7,$FF,$C7,$FF,$C7,$FF,$C7
  566.     DC.B    $FF,$C7,$FF,$C8,$FF,$C8,$FF,$C8
  567.     DC.B    $FF,$C8,$FF,$C9,$FF,$C9,$FF,$C9
  568.     DC.B    $FF,$CA,$FF,$CA,$FF,$CA,$FF,$CA
  569.     DC.B    $FF,$CB,$FF,$CB,$FF,$CB,$FF,$CB
  570.     DC.B    $FF,$CC,$FF,$CC,$FF,$CC,$FF,$CD
  571.     DC.B    $FF,$CD,$FF,$CD,$FF,$CD,$FF,$CE
  572.     DC.B    $FF,$CE,$FF,$CE,$FF,$CF,$FF,$CF
  573.     DC.B    $FF,$CF,$FF,$D0,$FF,$D0,$FF,$D0
  574.     DC.B    $FF,$D1,$FF,$D1,$FF,$D1,$FF,$D1
  575.     DC.B    $FF,$D2,$FF,$D2,$FF,$D2,$FF,$D3
  576.     DC.B    $FF,$D3,$FF,$D3,$FF,$D4,$FF,$D4
  577.     DC.B    $FF,$D4,$FF,$D5,$FF,$D5,$FF,$D5
  578.     DC.B    $FF,$D6,$FF,$D6,$FF,$D6,$FF,$D7
  579.     DC.B    $FF,$D7,$FF,$D7,$FF,$D8,$FF,$D8
  580.     DC.B    $FF,$D9,$FF,$D9,$FF,$D9,$FF,$DA
  581.     DC.B    $FF,$DA,$FF,$DA,$FF,$DB,$FF,$DB
  582.     DC.B    $FF,$DB,$FF,$DC,$FF,$DC,$FF,$DC
  583.     DC.B    $FF,$DD,$FF,$DD,$FF,$DE,$FF,$DE
  584.     DC.B    $FF,$DE,$FF,$DF,$FF,$DF,$FF,$DF
  585.     DC.B    $FF,$E0,$FF,$E0,$FF,$E1,$FF,$E1
  586.     DC.B    $FF,$E1,$FF,$E2,$FF,$E2,$FF,$E3
  587.     DC.B    $FF,$E3,$FF,$E3,$FF,$E4,$FF,$E4
  588.     DC.B    $FF,$E5,$FF,$E5,$FF,$E5,$FF,$E6
  589.     DC.B    $FF,$E6,$FF,$E6,$FF,$E7,$FF,$E7
  590.     DC.B    $FF,$E8,$FF,$E8,$FF,$E8,$FF,$E9
  591.     DC.B    $FF,$E9,$FF,$EA,$FF,$EA,$FF,$EB
  592.     DC.B    $FF,$EB,$FF,$EB,$FF,$EC,$FF,$EC
  593.     DC.B    $FF,$ED,$FF,$ED,$FF,$ED,$FF,$EE
  594.     DC.B    $FF,$EE,$FF,$EF,$FF,$EF,$FF,$EF
  595.     DC.B    $FF,$F0,$FF,$F0,$FF,$F1,$FF,$F1
  596.     DC.B    $FF,$F2,$FF,$F2,$FF,$F2,$FF,$F3
  597.     DC.B    $FF,$F3,$FF,$F4,$FF,$F4,$FF,$F5
  598.     DC.B    $FF,$F5,$FF,$F5,$FF,$F6,$FF,$F6
  599.     DC.B    $FF,$F7,$FF,$F7,$FF,$F8,$FF,$F8
  600.     DC.B    $FF,$F8,$FF,$F9,$FF,$F9,$FF,$FA
  601.     DC.B    $FF,$FA,$FF,$FA,$FF,$FB,$FF,$FB
  602.     DC.B    $FF,$FC,$FF,$FC,$FF,$FD,$FF,$FD
  603.     DC.B    $FF,$FD,$FF,$FE,$FF,$FE,$FF,$FF
  604.     DC.B    $FF,$FF,$00,$00,$00,$00,$00,$00
  605.  
  606. ;---------------------------------------
  607.  
  608.     SECTION gfx,data_c
  609.  
  610. SPLANE1    blk.b    $5D80,0            ; Starfield bitmaps
  611. SPLANE2    blk.b    $5D80,0
  612. SPLANE3    blk.b    $5D80,0
  613.  
  614.